#ifndef SLIDERDIALOG_H
#define SLIDERDIALOG_H

#include <QDialog>

namespace Ui {
class SliderDialog;
}

/*
    继承了 QDialog GUI类
    整体功能:
        实现了按键悬浮窗的基础类
    具体功能：
        1、作为设置悬浮窗出现，相关UI见.ui文件
        2、提供了操作value的函数和相关信号、槽作为与其他组件的交互
*/

class SliderDialog : public QDialog
{
    Q_OBJECT

public:
    explicit SliderDialog(QWidget *parent = nullptr);
    ~SliderDialog();

    void SetLabelSuffix(QString suffix);
    void SetSliderMaxValue(int value);
    void SetSliderMinValue(int value);
    void SetSliderStep(int step);
    void SetValueConversion(int rate);

signals:
    void SliderValueChanged(int value);

public slots:
    void SetValue(int value);

private slots:
    void DoSliderValueChanged(int value);
    void DoSliderValueChanged();
    void UpdateLabel(int value);

private:
    void Init();
    void ConnectAll();

    Ui::SliderDialog *ui;
    QString mLabelSuffix{};
    int mConversionRate{1};
};

#endif // SLIDERDIALOG_H
